package cn.sc.summer.construction.login;

import cn.sc.summer.domain.login.SysLoginService;
import cn.sc.summer.feign.client.login.SysLoginClient;
import cn.sc.summer.protocol.form.login.AppLoginForm;
import cn.sc.summer.protocol.form.login.LoginForm;
import cn.sc.summer.protocol.form.login.SmsCodeLoginForm;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Map;

/**
 * 类名：用户登录实现
 *
 * @author a-xin
 * @date 2024/10/5 11:40
 */
@Slf4j
@Service
public class SysLoginServiceImpl implements SysLoginService {

    @Resource
    private SysLoginClient sysLoginClient;

    /**
     * 用户名密码登录
     *
     * @param loginForm 登录信息表单
     * @return 登录token信息
     */
    @Override
    public Map<String, Object> login(LoginForm loginForm) {
        return sysLoginClient.login(loginForm).getData();
    }

    /**
     * 手机验证码登录
     *
     * @param smsCodeLoginForm 登录信息表单
     * @return 登录token信息
     */
    @Override
    public Map<String, Object> smsLogin(SmsCodeLoginForm smsCodeLoginForm) {
        return sysLoginClient.smsLogin(smsCodeLoginForm).getData();
    }

    /**
     * 手机小程序登录
     *
     * @param appLoginForm 登录信息表单
     * @return 登录token信息
     */
    @Override
    public Map<String, Object> appLogin(AppLoginForm appLoginForm) {
        return sysLoginClient.appLogin(appLoginForm).getData();
    }

    /**
     * 登出处理
     */
    @Override
    public void logout() {
        sysLoginClient.logout();
    }

}
